home *** CD-ROM | disk | FTP | other *** search
- property ieModeButtons, ieScaleEndSlider, ieScaleStartSlider, ieStartRadio, ieInterpolationRadio, ieFramesNumber, peffect, pMode, pScaleEnd, pScaleStart, pStart, pInterpolation, pNumFrames, void
- global fxTrackingObj
-
- on new me, mode
- set peffect to #scale
- set pMode to #follow
- getStageMember(me)
- set ieModeButtons to new(script "Mode Buttons", [#sprites: [13, 14, 15, 16], #callback: me])
- changeMode(me, pMode)
- updateFXtextlist(fxTrackingObj, me)
- return me
- end
-
- on reset me
- set pScaleEnd to 100
- set pScaleStart to void
- set pInterpolation to 1
- set pStart to 1
- set pNumFrames to 15
- end
-
- on changeMode me, mode
- set pMode to mode
- releasePuppets(24, 48)
- SetActive(ieModeButtons, getPos([#static, #Range, #pendulum, #follow], pMode))
- if (mode = #static) or (mode = #follow) then
- go("Scale Static")
- set ieScaleEndSlider to new(script "Slider Bar", [#fillSprite: 34, #thumbSprite: 35, #arrowsSprite: 36, #textSprite: 37, #textField: "End Percentage", #left: 184, #width: 150, #min: 1, #max: 200, #cur: pScaleEnd, #suffix: "%", #active: 1, #callback: me, #ref: #end])
- set ieInterpolationRadio to new(script "Radio Button", [#sprites: [42, 43, 44], #cur: pInterpolation + 1, #active: 1, #callback: me, #ref: #smoothness])
- else
- if (mode = #Range) or (mode = #pendulum) then
- go("Scale Range")
- set ieScaleStartSlider to new(script "Slider Bar", [#fillSprite: 28, #thumbSprite: 29, #arrowsSprite: 30, #textSprite: 31, #textField: "Start Percentage", #left: 184, #width: 150, #min: 1, #max: 200, #cur: pScaleStart, #suffix: "%", #active: pStart = 2, #callback: me, #ref: #start])
- set ieScaleEndSlider to new(script "Slider Bar", [#fillSprite: 34, #thumbSprite: 35, #arrowsSprite: 36, #textSprite: 37, #textField: "End Percentage", #left: 184, #width: 150, #min: 1, #max: 200, #cur: pScaleEnd, #suffix: "%", #active: 1, #callback: me, #ref: #end])
- set ieInterpolationRadio to new(script "Radio Button", [#sprites: [42, 43, 44], #cur: pInterpolation + 1, #active: 1, #callback: me, #ref: #smoothness])
- set ieFramesNumber to new(script "Number Field", [#arrowsSprite: 47, #textSprite: 48, #textField: "Scale Duration", #min: 0, #max: 999, #cur: pNumFrames, #active: 1, #callback: me, #ref: #frames])
- set ieStartRadio to new(script "Radio Button", [#sprites: [39, 40], #cur: pStart, #active: 1, #callback: me, #ref: #start])
- end if
- end if
- resetDisplay()
- setBothMembers(me, pScaleEnd)
- setDisplayMember(me)
- end
-
- on DoDrag me, refcon, curVal
- if refcon = #end then
- set pScaleEnd to curVal
- else
- if refcon = #start then
- set pScaleStart to curVal
- end if
- end if
- setBothMembers(me, curVal)
- end
-
- on EndChange me, refcon
- setDisplayMember(me)
- end
-
- on changeNumber me, curVal, refcon
- set pNumFrames to curVal
- setDisplayMember(me)
- end
-
- on RadioClick me, refcon, curActive
- if refcon = #smoothness then
- set pInterpolation to curActive - 1
- else
- if refcon = #start then
- set pStart to curActive
- if curActive = 1 then
- set pScaleStart to void
- SetEnabled(ieScaleStartSlider, 0)
- else
- set pScaleStart to 100
- SetEnabled(ieScaleStartSlider, 1)
- SetVal(ieScaleStartSlider, pScaleStart)
- end if
- end if
- end if
- setBothMembers(me, pScaleEnd)
- setDisplayMember(me)
- end
-
- on setBothMembers me, tempPercentage
- global fxDisplayMember
- if pMode = #follow then
- set args to [#animMode: #follow, #interpolation: pInterpolation, #percentage: tempPercentage]
- else
- set args to [#animMode: #static, #interpolation: pInterpolation, #percentage: tempPercentage]
- end if
- scale(fxDisplayMember, args)
- tempStageMember(fxTrackingObj, me, peffect, args)
- end
-
- on setDisplayMember me
- global fxDisplayMember
- RemoveAllEffects(fxDisplayMember)
- scale(fxDisplayMember, makePropertyList(me))
- end
-
- on makePropertyList me
- if (pMode = #follow) or (pMode = #static) then
- set plist to [#animMode: pMode, #interpolation: pInterpolation, #percentage: pScaleEnd]
- else
- if (pMode = #Range) or (pMode = #pendulum) then
- set plist to [#animMode: pMode, #interpolation: pInterpolation, #endPercentage: pScaleEnd, #numFrames: pNumFrames]
- if pStart = 2 then
- addProp(plist, #startPercentage, pScaleStart)
- end if
- end if
- end if
- return plist
- end
-
- on getStageMember me
- reset(me)
- set list to getaProp(the pNewEffects of fxTrackingObj, peffect)
- if voidp(list) then
- exit
- end if
- set someOldProp to getaProp(list, #animMode)
- if symbolp(someOldProp) then
- set pMode to someOldProp
- end if
- set someOldProp to getaProp(list, #interpolation)
- if integerp(someOldProp) then
- set pInterpolation to someOldProp
- end if
- if (pMode = #Range) or (pMode = #pendulum) then
- set someOldProp to getaProp(list, #startPercentage)
- if integerp(someOldProp) then
- set pScaleStart to someOldProp
- end if
- set someOldProp to getaProp(list, #endPercentage)
- if integerp(someOldProp) then
- set pScaleEnd to someOldProp
- end if
- if voidp(pScaleEnd) then
- set pStart to 1
- else
- set pStart to 2
- end if
- set someOldProp to getaProp(list, #numFrames)
- if integerp(someOldProp) then
- set pNumFrames to someOldProp
- end if
- else
- set someOldProp to getaProp(list, #percentage)
- if integerp(someOldProp) then
- set pScaleEnd to someOldProp
- end if
- end if
- end
-
- on Release me
- resetDisplay()
- releasePuppets(8, 48)
- end
-